Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modern society. Personal computers (PCs) may be defined as a desktop, floor standing, or portable microcomputer that includes a system unit having a central processing unit (CPU) and associated volatile and non-volatile memory, including random access memory (RAM) and basic input/output system read only memory (BIOS ROM), a system monitor, a keyboard, one or more flexible diskette drives, a CD-ROM drive, a fixed disk storage drive (also known as a “hard drive”), a pointing device such as a mouse, and an optional network interface adapter. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. Examples of such personal computer systems are IBM's PC 300 series, A ptiva series, and Intellistation series.
With PCs being increasingly connected into networks to allow transfers of data among computers to occur, more operations such as maintenance, updating of applications, and data collections are occurring over the network. Computer networks are also becoming essential to their users. It is desirable to minimize loss of productivity by increasing availability of network resources. In today's networked world, the availability and performance of the network is as important as the availability and performance of the personal computer.
One known method for managing a networked system is the ability of a computer system to cause an initially powered-off client computer system on the network to power-up. This method is commonly called “Wake-on-LAN,” and may also be known as remote wake-up. This method permits a server, or any other computer system on the network, to cause a client on the network to power-up by transmitting a Wake-on-LAN packet with the appropriate information.
By utilizing Wake-on-LAN, system administrators can more efficiently manage a client-server system by performing automated software applications such as software downloads, upgrades, maintenance, back-ups, virus scans, etc. during times when end-users are gone and when off-peak loads exist on the network. Wake-on-LAN provides more efficiency for end-users as software maintenance and operations can be performed while they are gone, eliminating delays and reboots. Systems administrators save time with Wake-on-LAN as well by avoiding having to manually turn computers on and off to perform software maintenance, upgrades, etc. Network operations are also improved as bandwidth-hungry applications such as upgrades can be performed when network activity is at a minimum. Network administrators could keep a little used computer in a powered-down state in a remote location, and could use Wake-on-LAN to wake it when needed.
In order to utilize Wake-on-LAN, a server transmits a data packet to a computer over a network. The data packet contains information identifying it as a Wake-on-LAN command, as well as authentication information. When a computer equipped with Wake-on-LAN functionality receives the data packet, it will attempt to turn on. If the computer does turn on, the server will typically be able to detect the now active computer on the network. One problem with Wake-on-LAN is that if a server does not detect the computer after the data packet has been transmitted and the server has waited long enough for the computer to initialize, the server does not know what happened. Accordingly, the server will keep on transmitting Wake-on-LAN data packets until the computer awakes. The client computer could be broken, physically off the network, “hung up,” etc., and the server will have no idea what is causing the problem. Repeated attempts to wake-up a computer by the server results in inefficiencies in processing, transmission, optimization, etc.
Another problem with Wake-on-LAN is that a client computer may have Wake-on-LAN disabled. This may result in repeated attempts by the server to wake the client without any hope of succeeding.
Inefficiencies because of the lack of client knowledge by the server or by client configurations (such as Wake-on-LAN being disabled) are exacerbated when a server must manage a large number of clients. If, for example, a server must download an operating system upgrade to fifty computers during the night, time wasted trying to turn on clients that are not going to turn on will make the task more difficult to accomplish. Moreover, greater knowledge and control of the client computer systems could allow the server to optimize management of the clients and networks.